<?php

class Admin_ProduitController extends Zend_Controller_Action
{

    public function init()
    {
        $this->view->baseUrl = $this->_request->getBaseUrl();
    }

    public function indexAction()
    {       
        // Récupération de tous les produits
        $produit = new Admin_Model_DbTable_Produits();
        //$produits = $produit->getAllProduits();
        //$this->view->produits = $produits;
        
        $page = $this->_request->getParam('page');
        if (empty($page)) {
        	$page = 1;
        }              
        $paginator = $produit->getOnePageOfProduitEntries($page);
        $this->view->paginator = $paginator;       
    }

    public function editeAction()
    {
        $request = $this->getRequest();
    	$form = new Admin_Form_Produit();
    	$form->submit->setLabel('Sauvegarder');
        $this->view->form = $form;
              
        if ($request->isPost()){
        	$formData = $request->getPost();
 
        	if ($form->isValid($formData)){
        		
        		$name = $form->getValue('name');		        		         		
        		$price = $form->getValue('prix');
        		$qtt = $form->getValue('quantite');
        		$unite = $form->getValue('unite');
        		$categorie = $form->getValue('categorie');
        		$description= $form->getValue('description');
        		$id = $this->_getParam('id', 0);
        		$produit = new  Admin_Model_DbTable_Produits();
        		$produits = $produit->editeProduit($id, $categorie, $name,  $price,  $qtt, $unite, $description);
        		
        		$this->_redirect('/admin/produit');
        	}else {
        		$form->populate($formData);
        	}
        	
        }else {
        	$id = $this->_getParam('id', 0);
        	if ($id > 0 ){

        		$produit = new Admin_Model_DbTable_Produits();
        		$p = $produit->obtenirProduit($id);
        		$form ->populate($p);
        		
        		$cat_id = $p['categorie'];
        		$categorie = new Admin_Model_DbTable_Categories();
        		$cat = $categorie->obtenirCategorie($cat_id);
        		$catList[$cat_id] = $cat['name'];
        		$cats = $categorie->getAllCaterories();
        		foreach ($cats as $categ){
        			$catList[$categ->id]= $categ->name;
        		}
        		$form->categorie->setMultiOptions($catList);
        				
        	}
        	
        }      
    }

    public function deleteAction()
    {
    	$this->view->title = "Supprimer le produit";
    	
    	if ($this->getRequest()->isPost()){
    		$supprimer = $this->getRequest()->getPost('supprimer');

    		if ($supprimer == 'Oui'){	    		
		    	// récupération du paramettre ID
		    	$id = $this->getRequest()->getPost('id');		    	
		    	//suppression du produit en question
		    	$produits = new Admin_Model_DbTable_Produits();
		    	$produits->deleteProduit($id);
    		}
	    	
	    	$this->_redirect("/admin/produit");
	    		    	
    	}else {
    		$id = $this->_getParam('id', 0);
    		$produit = new Admin_Model_DbTable_Produits();
    		$this->view->produit = $produit->obtenirProduit($id);
    	}
    }

    public function addAction()
    {
        $request = $this->getRequest();
        //création de l'objet form
        $form = new Admin_Form_Produit();
        
        //Création de la liste déroulante
        $cat = new Admin_Model_DbTable_Categories();
        $cats = $cat->getAllCaterories();
              
        $catList = array(''=>'');      
        foreach ($cats as $categ){
        	$catList[$categ->id]= $categ->name;        	
        }       
		$form->categorie->setMultiOptions($catList);
  
        //affecter le form créé à la vue
        $this->view->form = $form;
        
        if ($request->isPost()){      	
        	$formData = $request->getPost();

        	if ($form->isValid($formData)){       			
        		
		    	$name = $form->getValue('name');
		        $qtt = $form->getValue('quantite');
		        $price = $form->getValue('prix');		        	
		        $unite = $form->getValue('unite');
		        $categorie = $form->getValue('categorie');
		        $description = $form->getValue('description');
		        	
		        $produit = new Admin_Model_DbTable_Produits();
		        $idproduit = $produit->addProduit($name, $price, $qtt, $unite, $categorie, $description);
		        	
		        // recuperer l'image du serveur
		        $upload = new Zend_File_Transfer_Adapter_Http();
		        
		        // renommer l'image avec $idproduit
		        $renameFile = $idproduit.'.jpg';		        
		        $fullFilePath = './images/produits/'.$renameFile;
		        
		        // New Code For Zend Framework :: Rename Uploaded File
		        $filterFileRename = new Zend_Filter_File_Rename(array('target' => $fullFilePath, 'overwrite' => true));
		        
		        $upload->addFilter($filterFileRename);
		        
		        $upload->setDestination('./images/produits');
		        try {
		        	// upload received file(s)
		        		$upload->receive();
		        } catch (Zend_File_Transfer_Exception $e) {
		        	echo $e->getMessage();
		        }		        
 		        
		        $this->_redirect('admin/produit');
        	
		    }else {
		        $form->populate($formData);
		    }
        }
        
    }


}







